package cn.aiweiyi.qingjing.coupon.comm.vo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * @author 青衿
 * @Date 2020/11/21 18:58
 * 优惠券结算的信息封装类
 * 结算,是指根据商品信息和优惠券模板规则,计算优惠后的金额,可能只用于显示给用户看
 * 核销,是指在结算出金额的基础上,使用优惠券,会使优惠券的状态噶变为USED(已使用)
 **/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class SettlementInfo {
    private Long userId;

    /**
     * 商品信息
     */
    private List<GoodsInfo> goodsInfos;

    /**
     * 优惠券列表
     */
    private List<CouponAndTemplateInfo> couponAndTemplateInfos;

    //结算后的金额.参数传入阶段这里没有值
    private Double cost;

    //是否使结算生效,即核销
    private Boolean employ;

    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    public static class CouponAndTemplateInfo {
        /**
         * 优惠券Id
         */
        private Integer id;

        private CouponTemplateSDK template;
    }
}
